package servicioUsuario;

import dao.DaoUsuario;
import java.util.List;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import mappingOfObject.Usuario;

/**
 *
 * @author jano
 */
@WebService(serviceName = "UsuarioWebService")
public class UsuarioWebService {

    /** Operación que crea un usuario */
    @WebMethod(operationName = "crearUsuario")
    public boolean crearUsuario(@WebParam(name = "nombre") String nombre,
            @WebParam(name = "apellido") String apellido,
            @WebParam(name = "pass") String pass,
            @WebParam(name = "email") String email,
            @WebParam(name = "tipo") String tipo,
            @WebParam(name = "numeroSucursal") int numeroSucursal,
            @WebParam(name = "radio") int radio) {
        Usuario u=new Usuario();
        u.setNombre(nombre);
        u.setPass(pass);
        u.setEmail(email);
        u.setApellido(apellido);
        u.setTipo(tipo);
        u.setNumeroSucursal(numeroSucursal);
        u.setRadio(radio);
        u.setVisible(true);
        return persistenceObjectHandler.HandlerObjectPersistence.saveObject(u);
    }
    @WebMethod(operationName = "eliminarUsuario")
    public boolean eliminarUsuario(@WebParam(name = "id") long id) {
        Usuario u=(Usuario) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Usuario.class);
        u.setVisible(false);
        return persistenceObjectHandler.HandlerObjectPersistence.saveOrUpdateObject(u);
    }
    @WebMethod(operationName = "obtenerUsuarioId")
    public Usuario obtenerUsuarioId(@WebParam(name = "id") long id) {
        return (Usuario) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Usuario.class);
    }
    @WebMethod(operationName = "obtenerUsuarioEmail")
    public Usuario obtenerUsuarioEmail(@WebParam(name = "email") String email) {
        return DaoUsuario.obtenerUsuarioEmail(email);
    }
    @WebMethod(operationName = "actualizarUsuario")
    public boolean actualizarUsuario(@WebParam(name = "id") long id,
            @WebParam(name = "pass") String pass,
            @WebParam(name = "nombre") String nombre, @WebParam(name = "apellido") String apellido,
            @WebParam(name = "email") String email, @WebParam(name = "tipo") String tipo,
            @WebParam(name = "numeroSucursal") int numeroSucursal,
            @WebParam(name = "radio") int radio) {
        Usuario u=(Usuario) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Usuario.class);
        u.setPass(pass);
        u.setNombre(nombre);
        u.setPass(pass);
        u.setEmail(email);
        u.setApellido(apellido);
        u.setTipo(tipo);
        u.setNumeroSucursal(numeroSucursal);
        u.setRadio(radio);
        u.setVisible(true);
        return persistenceObjectHandler.HandlerObjectPersistence.saveOrUpdateObject(u);
    }

    @WebMethod(operationName = "listarUsuarioEmpresa")
        public List<Usuario> listarUsuarioEmpresa() {
        return DaoUsuario.listarUsuarioEmpresa();
    }
    @WebMethod(operationName = "validar")
    public boolean validar(@WebParam(name = "email") String email, @WebParam(name = "pass") String pass) throws Exception {
        return DaoUsuario.validar(email, pass);
    }

    public boolean actualizarPass(@WebParam(name = "id") long id,
    @WebParam(name = "pass") String pass) {
        Usuario u=(Usuario) persistenceObjectHandler.HandlerObjectPersistence.loadObjectByLongId(id, Usuario.class);
        u.setPass(pass);
        return persistenceObjectHandler.HandlerObjectPersistence.saveOrUpdateObject(u);
    }
}
